package cn.kent.service;

import cn.kent.config.RabbitConfig;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * 1. 客户端发送请求
 * 2. 服务端给出答复，同意将通信信道设置为事务模式
 * 3. 发送消息
 * 4. 提交事务
 * 5. 服务端给出答复，确认事务提交
 */
@Service
public class MsgService {
    @Autowired
    RabbitTemplate rabbitTemplate;

    /**
     * 当和数据库一起操作时，指定事务管理器进行处理
     */
    @Transactional(transactionManager = "rabbitTransactionManager")
    public void send() {
        rabbitTemplate.convertAndSend(RabbitConfig.MSG_EXCHANGE_NAME, RabbitConfig.MSG_QUEUE_NAME, "Hello，鹏鹏！");
        int i = 1 / 0;
    }
}
